'use strict';

/** @type {import('sequelize-cli').Migration} */
module.exports = {
  async up (queryInterface, Sequelize) {
    /**
     * Add seed commands here.
     *
     * Example:
     * await queryInterface.bulkInsert('People', [{
     *   name: 'John Doe',
     *   isBetaMember: false
     * }], {});
    */
    await queryInterface.bulkInsert('Posts', [
      {
        title: 'Vue3 响应式原理详解 ',
        content: 'Vue3 的响应式系统基于 Proxy 实现，相比 Vue2 的 Object.defineProperty，能更好地支持数组索引修改、对象新增属性等场景。本文将从依赖收集、触发更新两个核心环节，拆解响应式原理的实现逻辑，并附带简单的模拟代码示例。',
        userId: 1,
        categoryId: 1,
        status: 1,
        createdAt: new Date(),
        updatedAt: new Date()
      },
      {
        title: 'React Hooks 使用避坑指南 ',
        content: 'React Hooks 极大简化了函数组件的状态管理，但使用不当容易引发闭包陷阱、依赖项错误等问题。本文总结了 useState 初始化函数的正确用法、useEffect 依赖数组的完整声明、useCallback 缓存函数的适用场景等实用技巧。',
        userId: 1,
        categoryId: 1,
        status: 1,
        createdAt: new Date(),
        updatedAt: new Date()
      },
      {
        title: 'CSS Grid 布局实战案例 ',
        content: 'CSS Grid 是构建二维布局的强大工具，相比 Flexbox 更适合复杂网格结构。本文通过一个电商商品列表页面的布局实现，详细讲解 grid-template-columns、grid-gap、grid-area 等属性的用法，以及响应式网格的媒体查询适配方案。',
        userId: 1,
        categoryId: 1,
        status: 1,
        createdAt: new Date(),
        updatedAt: new Date()
      },
      {
        title: ' 前端性能优化之图片懒加载 ',
        content: ' 图片懒加载能有效减少初始页面加载的资源体积，提升首屏渲染速度。本文介绍两种实现方式：基于 IntersectionObserver API 的现代方案，以及兼容低版本浏览器的 scroll 事件监听方案，并对比两者的性能差异和适用场景。',
        userId: 1,
        categoryId: 2,
        status: 1,
        createdAt: new Date(),
        updatedAt: new Date()
      },
      {
        title: 'TypeScript 类型断言的正确姿势 ',
        content: 'TypeScript 的类型断言允许开发者手动指定变量的类型，但过度使用会破坏类型检查的严谨性。本文通过示例说明 as 语法和尖括号语法的使用场景，分析类型断言与类型转换的区别，以及在联合类型、any 类型中的应用边界。',
        userId: 1,
        categoryId: 3,
        status: 1,
        createdAt: new Date(),
        updatedAt: new Date()
      }
    ])
  },

  async down (queryInterface, Sequelize) {
    /**
     * Add commands to revert seed here.
     *
     * Example:
     * await queryInterface.bulkDelete('People', null, {});
     */
    await queryInterface.bulkDelete('Posts', null, {})
  }
};
